Support /record/consumer、/record/sale and relation

FFIB 5 年 前
コミット
abbee931a9
共有4 個のファイルを変更した95 個の追加1 個の削除を含む
  1. 49 0
      api/admin_views.py
  2. 3 0
      api/urls.py
  3. 29 1
      integral/models.py
  4. 14 0
      mch/models.py

+ 49 - 0
api/admin_views.py

@@ -556,3 +556,52 @@ def statistic_consumer(request):
556 556
         'model_logs': model_logs,
557 557
         'province_logs': province_logs,
558 558
     })
559
+
560
+def record_consumer(request):
561
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
562
+    admin_id = request.POST.get('admin_id', '')
563
+    start_time = request.POST.get('start_time', '')
564
+    end_time = request.POST.get('end_time', '')
565
+    model_name = request.POST.get('model_name', '')
566
+    phone = request.POST.get('phone', '')
567
+
568
+    if brand_id != settings.KODO_DEFAULT_BRAND_ID:
569
+        return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
570
+
571
+    try:
572
+        administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
573
+    except AdministratorInfo.DoesNotExist:
574
+        return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
575
+    
576
+    logs = ConsumeInfoSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, test_user=False, model_uni_name__contains=model_name, phone__contains=phone)
577
+
578
+    logs = [log.admindata for log in logs]
579
+
580
+    return response(200, 'Get Consumer Record Success', u'获取消费者销售记录成功', data={
581
+        'logs': logs
582
+    })
583
+
584
+def record_sale(request):
585
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
586
+    admin_id = request.POST.get('admin_id', '')
587
+    start_time = request.POST.get('start_time', '')
588
+    end_time = request.POST.get('end_time', '')
589
+    model_name = request.POST.get('model_name', '')
590
+    clerk_name = request.POST.get('clerk_name', '')
591
+    distributor_name = request.POST.get('distributor_name', '')
592
+
593
+    if brand_id != settings.KODO_DEFAULT_BRAND_ID:
594
+        return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
595
+
596
+    try:
597
+        administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
598
+    except AdministratorInfo.DoesNotExist:
599
+        return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
600
+    
601
+    logs = SaleclerkSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, test_user=False, test_sn=False, model_uni_name__contains=model_name, clerk_name__contains=clerk_name, distributor_name__contains=distributor_name)
602
+
603
+    logs = [log.admindata for log in logs]
604
+
605
+    return response(200, 'Get Sale Record Success', u'获取销售员销售记录成功', data={
606
+        'logs': logs
607
+    })

+ 3 - 0
api/urls.py

@@ -309,6 +309,9 @@ urlpatterns += [
309 309
 
310 310
     url(r'^admin/dashboard$', admin_views.dashboard, name='dashboard'),
311 311
     url(r'^admin/statistic/consumer$', admin_views.statistic_consumer, name='statistic_consumer'),
312
+
313
+    url(r'^admin/record/consumer$', admin_views.record_consumer, name='record_consumer'),
314
+    url(r'^admin/record/sale$', admin_views.record_sale, name='record_sale'),
312 315
 ]
313 316
 
314 317
 urlpatterns += [

+ 29 - 1
integral/models.py

@@ -2,7 +2,8 @@
2 2
 
3 3
 from django.db import models
4 4
 from django.utils.translation import ugettext_lazy as _
5
-from django_models_ext import BaseModelMixin, upload_path
5
+from django_models_ext import BaseModelMixin, upload_path, upload_file_path, upload_file_url
6
+from TimeConvert import TimeConvert as tc
6 7
 
7 8
 from mch.models import ModelInfo
8 9
 
@@ -124,3 +125,30 @@ class SaleclerkSubmitLogInfo(BaseModelMixin):
124 125
 
125 126
     def __unicode__(self):
126 127
         return unicode(self.pk)
128
+    
129
+    @property
130
+    def image_path(self):
131
+        return upload_file_path(self.image)
132
+
133
+    @property
134
+    def image_url(self):
135
+        return upload_file_url(self.image)
136
+
137
+    @property
138
+    def admindata(self):
139
+        return {
140
+            'pk': self.pk,
141
+            'model_name': self.model_name,
142
+            'model_uni_name': self.model_uni_name,
143
+            'code': self.code,
144
+            'trackingNo': self.trackingNo,
145
+            'is_staff_delete': self.is_staff_delete,
146
+            'code_version': self.code_version,
147
+            'clerk_name': self.clerk_name,
148
+            'distributor_name': self.distributor_name,
149
+            'remark': self.remark,
150
+            'dupload': self.dupload,
151
+            'has_scan': self.has_scan,
152
+            'image': self.image_url,
153
+            'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d'),
154
+        }

+ 14 - 0
mch/models.py

@@ -695,6 +695,20 @@ class ConsumeInfoSubmitLogInfo(BaseModelMixin):
695 695
             'dupload': self.dupload,
696 696
             'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d'),
697 697
         }
698
+    
699
+    @property
700
+    def admindata(self):
701
+        return {
702
+            'pk': self.pk,
703
+            'user_id': self.user_id,
704
+            'model_name': self.model_name,
705
+            'model_uni_name': self.model_uni_name,
706
+            'serialNo': self.serialNo,
707
+            'phone': self.phone,
708
+            'code_version': self.code_version,
709
+            'dupload': self.dupload,
710
+            'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d'),
711
+        }
698 712
 
699 713
 
700 714
 class ActivityInfo(BaseModelMixin):